import { User} from "@/types/proto/api/v1/user_service";
import { P2PExchangeRecord } from '@/types/proto/api/v1/exchange_service';
import { WebSocketClient} from "@/utils/websocket";
import { Subject} from "@/types/proto/api/v1/subject_service";
import { LLMAssistant} from "@/types/proto/api/v1/llm_service";
import { Granary} from "@/types/proto/api/v1/granary_service";

import { TopicDef } from '@/types/proto/common/common';

export interface UserEntity {
    token: string | undefined,
    userInfo: User | null,
    tenant:string,
    tenantUrn:string,
    assistant:LLMAssistant|null,
    drawer: boolean,
    recipient: User | null,
    readyRecipient: User | null,
    navId: string,
    sessionList: Array<any>,
    sessionSelectId: number,
    allSessionList: Array<User>,
    allSessionSelectId: number,
    navList: Array<{index: string, lable: string, icon: string}>,
    exchanges: Array<P2PExchangeRecord>,
    sendInfo: User | null,
    chatScrollbar: any,
    chatEditor:  any,
    editor: any,
    editorData: string,
    openMusic: boolean,
    onlineStatus: boolean,
    tipMusic: HTMLMediaElement | null,
    subject: Subject | null,
    topic:TopicDef | null,
    granary: Granary | null
}